#pragma once

#include "GameEntity.h"



class DynamicObject : public GameEntity
{
    Q_OBJECT

public:
    DynamicObject();
    DynamicObject(const DynamicObject & obj, bool copyScene);
    DynamicObject(int X, int Y, char Dir, int Speed, int Progress);
    ~DynamicObject();

    int GetPosX()
    {
        return m_posX;
    }

    int GetPosY()
    {
        return m_posY;
    }

    char GetDirection()
    {
        return m_direction;
    }

    double GetProgress()
    {
        return m_progress;
    }

    void SetPosX(double X)
    {
        m_posX = X;
    }

    void SetPosY(double Y)
    {
        m_posY = Y;
    }

    void SetDirection(char Dir)
    {
        m_direction = Dir;
    }

    void SetSpeed(double Speed)
    {
        m_speed = Speed;
    }

    void SetProgress(double Progress)
    {
        m_progress = Progress;
    }

    virtual bool advanceAction(long duration) = 0;

protected:
   int pixForCell;
   char m_direction;
   int m_posX;
   int m_posY;
   int m_speed;
   double m_progress;
};
